package jmine.tec.services.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import jmine.tec.services.api.ActionsEnum;

/**
 * Annotation utilizada para definir parametros de um servico.
 * 
 * @author Rafael Volpato (Jun 6, 2007)
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface ServiceFields {

    /**
     * Tipo de Acao ({@link ActionsEnum}) que o servico vai executar.
     * 
     * @return
     */
    ActionsEnum action();

    /**
     * Lista de parametros obrigatorios para o servico.
     */
    String[] required();

    /**
     * Lista de parametros opcionais para o servico.
     */
    String[] optional() default { "" };
}
